package com.example.development.jvmStudy.oom;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: vince_zww
 * @date: 2020/9/5 11:42
 * @desceription: 模拟堆内存溢出 并分析解决
 *
 *
 * JVM启动参数：
 * 解决：先看报错日志，发现是：java.lang.OutOfMemoryError: Java heap space
 * 用MAT分析内存快照
 * 先看占用内存最多的对象是谁
 * 然后分析那个线程的调用栈
 * 接着就可以看到哪个方法引发的内存溢出
 * 最后优化代码！
 */
public class JavaHeapOOMSolve {
    public static void main(String[] args) {
        long counter = 0;
        List<Object> list = new ArrayList<Object>();
        while (true){
            list.add(new Object());
            System.out.println("当前创建了第"+(++counter)+"个对象");
        }
    }
}
